170 SC=0:FR=5:B=1:LOCATE 24:PRINT SPC(5)"SCORE: 0"SPC(9)"TIME:";:FOR Y=0 TO 3:PSET (291,Y*40+20):DRAW FROG$:NEXT
180 FA=0:LG=4+(B>1)+(B=4):LP=4-B-(B=4):FOR Y=35 TO 83 STEP 12:IF Y=35 OR Y=59 OR Y=71 THEN SP=INT(INT(263/LG)/8+0.5)*8:ID=57*(LG=2)+50:FOR X=ID TO ID+(LG-1)*SP STEP SP:PSET (X,Y):DRAW LOGS$:PAINT (X-9,Y+5),2,2:DRAW TXTR$:NEXT:GOTO 200
190 SP=INT(INT(256/LP)/8+0.5)*8:ID=-56*(LP=2)-112*(LP=1)+8:FOR X=ID TO ID+(LP-1)*SP STEP SP:FOR D=6 TO 54 STEP 16:PSET (X+D,Y):DRAW LP$:PAINT (X+D,Y+3),3,3:NEXT D,X
200 NEXT Y:FOR Y=8 TO 12:RD=INT(RND(1)*(200-B*24))+20:PSET(RD,Y*12+11):C=-(SGN(DA(Y))<0):FOR X=0 TO B:DRAW"C"+STR$(INT(RND(1)*3)+1)+CAR$(C):NEXT X,Y
210 DEF SEG=0:POKE 1050,PEEK(1052):FOR D=1 TO 100:NEXT:LOCATE 24,29:PRINT"80";:FX=120:FY=12:TM=80
230 IF FY>6 AND FY<12 THEN FOR X=2 TO 23:IF BK%(X) THEN 430 ELSE NEXT
240 IF FY<6 THEN CPL=0:FOR X=2 TO 22 STEP 2:CPL=CPL-(BK%(X)<>0):NEXT:CPR=0:FOR X=3 TO 23 STEP 2:CPR=CPR-(BK%(X)<>0):NEXT:IF CPL<4 OR CPR<4 THEN 430
250 IF FY=6 OR FY=12 THEN FOR X=1 TO 200:NEXT
260 LOCATE 24,28:PRINT TM;:SOUND 300,0.1:M$=INKEY$:IF M$="" THEN M=0 ELSE M=ASC(M$):IF M=0 THEN M=INSTR(KP$,MID$(M$,2)):IF M THEN M=ASC(MID$(NK$,M))
270 IF M=27 THEN A$=INPUT$(1):GOTO 260
280 IF NOT JF THEN 310
290 M=0:P0=STICK(1):P1=STICK(1):C0=30<P0 AND P0<225:C1=30<P1 AND P1<225:IF C1 AND NOT C0 THEN M=52-2*(P0>127):GOTO 310
300 IF CO AND NOT C1 THEN M=56+6*(P1>127)
310 IF M=50 OR M=52 OR M=54 OR M= 56 THEN SOUND 400,0.5:SOUND 600,1:IF M=56 THEN SI=20:GOSUB 600:GOTO 330 ELSE IF M=50 AND FY<>12 THEN SI=-20:GOSUB 600:GOTO 330
320 FOR D=1 TO 50 :NEXT :'DELAY
330 NX=FX:NY=FY:IF M=56 THEN NY=FY-1
340 IF M=52 AND FX-16>=0 THEN NX=FX-16
350 IF M=54 AND FX+16<240 THEN NX=FX+16
360 IF M=50 AND FY<>12 THEN NY=FY+1
370 IF NY THEN 390
380 PUT (FX,35),BK%,PSET:GET (FX,23)-(FX+13,33),BK%:PSET (FK+6,23):DRAW FROG$:FOR X=2 TO 23:IF BK%(X)<>0 THEN YA=23:GOTO 430 ELSE NEXT: GOTO 580
390 IF FY>6 THEN PUT (FX,YA),BK%,PSET:GOTO 420
400 NX=NX-DA(FY)*(M<>56 AND M<>50):IF NX<0 OR NX>239 THEN 430
410 IF M THEN PUT (FX,YA),BK%,PSET
420 DEF SEG=CS:CALL HS:FX=NX:FY=NY:TM=TM-1:IF TM THEN IF M OR FY>6 THEN 220 ELSE230
430 FOR X=700 TO 300 STEP-20:PSET (FX+6,YA):DRAW FROG$:PUT (FX,YA),BK%,PSET:SOUND X,1:NEXT
440 FR=FR-1:IF FR THEN LINE(285,FR*40-20)-(298,FR*40-10),0,BF:GOTO 210
450 FOR X=1 TO 500:NEXT:CLS:FOR X=1 TO 4:SOUND 100,3:SOUND 300,3:NEXT:PRINT:PRINT:PRINT TAB(12)" G A M E O V E R":PRINT:PRINT:IF TS(0)=0 AND SC=0 THEN 510
460 IF SC<=TS(9) THEN 490
470 PRINT "YOUR SCORE IS IN THE TOP TEN":PRINT:DEF SEG=0:POKE 1050,PEEK(1052):LINE INPUT"ENTER YOUR NAME PLEASE: ";TN$(9):TS(9)=SC:FOR X=0 TO 8:AP=X:FOR Y=X+1 TO 9:IF TS(Y)>TS(AP) THEN AP=Y
480 NEXT Y:HN=TS(X):HN$=TN$(X):TS(X)=TS(AP):TN$(X)=TN$(AP):TS(AP)=HN:TN$(AP)=HN$:NEXT X:PRINT :PRINT
490 FOR X=0 TO 9:IF TS(X)=0 THEN 510
500 PRINT USING"###### ";TS(X);:PRINT TN$(X):NEXT
510 PRINT:PRINT:PRINT "WOULD YOU LIKE TO PLAY AGAIN? ";:CF=0
520 A$=INKEY$:IF A$="" THEN CF=CF+1:IF CF=20 THEN PRINT CHR$(95);CHR$(29);:GOTO 520 ELSE IF CF=40 THEN CF=0:PRINT " "CHR$(29);:GOTO 520 ELSE 520
530 A$=FNUP$(A$):IF A$<>"Y" AND A$<>"y" AND A$<>"n" AND A$<>"N" THEN 520
540 IF A$="Y" OR A$="y" THEN 160
550 ON ERROR GOTO 570
560 OPEN"HOPPER.SCO" FOR OUTPUT AS 1:FOR X=0 TO 9:PRINT #1,TS(X):PRINT #1,TN$(X):NEXT X
570 ON ERROR GOTO 0:CLOSE:CLS:END
580 SI=250:GOSUB 600:FA=FA+1:FOR X= 250 TO 350 STEP 10:SOUND X,1:NEXT X:IF FA<>5 THEN 210
610 FOR X= 23 TO 215 STEP 48: LINE (X,12)-(X+24,33),0,BF:NEXT :LINE (0,35)-(255,94),0,BF:LINE (0,106)-(255,166),0,BF:RETURN
620 DATA 235,18,144,0,0,1,255,2,255,2,0,1,255,2,254,255,0,0,0,0,30,6,184,85,184,142,216,142,192,46,199,6,3,0,10,0,46,139,54,3,0,46,138,132,5,0,60,0,117,3,233,159,0,46,162,17,0
630 DATA 46,162,18,0,139,198,187,224,1,247,227,139,216,46,198,6,16,0,2,46,246,6,17,0,128,117,66,253,131,195,62,139,251,46,198,6,19,0,6,139,247,131,238,2,139,5,185,31,0,243,165,137,68,2,129,199,142
640 DATA 0,46,254,14,19,0,117,230,46,254,14,17,0,117,215,46,254,14,16,0,116,76,46,160,18,0,46,162,17,0,129,195,0,32,235,194,252,139,251,46,198,6,19,0,6,139,247,131,198,2,139,5,185,31,0,243,165
650 DATA 137,68,254,131,199,18,46,254,14,19,0,117,231,46,254,6,17,0,117,216,46,254,14,16,0,116,14,46,160,18,0,46,162,17,0,129,195,0,32,235,195,46,255,14,3,0,46,129,62,3,0,255,255,116,3,233,63